/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package healthcare.coursework.service;

import healthcare.coursework.model.Diagnoses;
import healthcare.coursework.model.DiagnosesPK;
import healthcare.coursework.model.Facility;
import healthcare.coursework.model.Service;
import healthcare.coursework.model.TestSamples;
import healthcare.coursework.model.TestSamplesPK;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author Administrator
 */
@Remote
public interface AppointmentService {
    //Appointment to diagnose with doctor

    List<Service> listOfServices();

    List<Diagnoses> listOfDiagnoseAppointments(Long patientId);

    void cancelDiagnoseAppointment(DiagnosesPK appointKey);

    Diagnoses findDiagnoseAppointment(DiagnosesPK appointKey);

    void update(Diagnoses diagnose);

    void recover(DiagnosesPK appointKey);

    void removeForever(DiagnosesPK appointKey);

    boolean bookDiagnoseAppointment(java.lang.Long patientId, int serviceId, java.lang.String username, java.util.Date appointTime);

    
    
    // Retrieve list of request of specified doctor .. if parameter is null retrieve all réquest

    // Change status of appointment for lab

    void bookAppointmentForLab(TestSamplesPK pk);

    void cancelAppointmentForLab(TestSamplesPK pk);

    void updateTestSample(TestSamples sample);

    void addSampleResult(TestSamplesPK pk, String result);

    void removeTestSampleForever(TestSamplesPK appointKey);

    public java.util.List<healthcare.coursework.model.TestSamples> listOfRequestLabTesting();

    //Appointment for lab testing
    public void makeRequestForLab(java.lang.String username, java.lang.Long resourceId, java.lang.Long patientId, java.lang.String testName, java.util.Date appointTime);

    public java.util.List<healthcare.coursework.model.TestSamples> listOfAdmittedLabTesting();

    public java.util.List<healthcare.coursework.model.TestSamples> listOfAdmittedLabTesting(java.lang.String trackCode);

    public healthcare.coursework.model.TestSamples findTestSample(healthcare.coursework.model.TestSamplesPK id);
}
